Apple Developer Programの登録なしでIPAを作成し、Device Farmでテストしてみた
いわさです。
これまで、AWS Device Farmのブログをいくつか書いて来ました。
- AWS Device Farm の リモートアクセス機能をためしてみた | DevelopersIO
- AWS Device Farm で Appium を使って Androidネイティブアプリの自動テストを試してみた | DevelopersIO
- AWS Device Farm で Appium を使って 実行時のスクリーンショットレポートを取得してみた | DevelopersIO
- AWS Device Farm で Android の Webブラウザテストを行ってみた | DevelopersIO
- AWS Device Farm + Appium のWebブラウザテストを iOS環境でも動作するようにしてみた | DevelopersIO
- AWS Device Farm のリモートアクセス利用時の注意事項とプロジェクト作成時のタイムアウト設定について | DevelopersIO
- AWS Device Farm でリモートアクセスの使用状況詳細を確認する方法 | DevelopersIO
iOSネイティブアプリに関するためしてみた、が無いことに気づきましたでしょうか。
iOSネイティブアプリについてはApple Developer Program(ADP)のメンバーシップ登録が必須だろうとこれまで思っていました。
そして、私は現在Apple Developer Programのメンバーシップアカウントを所有していないので、iPhoneについてはWebアプリテストのみと諦めていました。
しかしながら、非ADPメンバーシップアカウントでもXcode上で実機と接続しビルドと動作確認を行うことは可能です。
その際はXcode上のアーカイブメニューから配布用IPAを作成することが出来ません。
発行や公開は出来ないが開発のために実機へデプロイすることは可能ということです。
そして、どうやら非ADPアカウントの開発証明書でサインされたAPPファイルでも自分でIPAファイルを作成すればAWS Device Farmで動かせるようなので試してみました。
APPからIPAを作成
IPA作成方法はDevice Farmに限らない一般的な方法なのですが、GitHubのAWSサンプルリポジトリでもその方法が案内されています。
実行用に署名されたIPAファイルを新規作成したPayloadフォルダに入れて、Zip圧縮し、拡張子を.ipaに変更するだけです。
なお、出力先はXcodeのPreferencesのLocationsから確認が可能です。
ちなみに、この方法で作った場合、プロビジョニングプロファイルの期限は1週間となっています。
Device Farmでテスト
先程作成したIPAファイルをDevice Farmでアップロードしてみましょう。
無効とならずにアップロードに成功しました!
テストについては今回は焦点ではないので、組み込みのFuzzテストを利用します。
Fuzzテストは雑にいうとDeviceFarmに最初から組み込まれているランダムテストです。
ランダムなUI操作を行ってくれます。
詳細は以下を参照してください。
ターゲットiOSバージョンを満たすデバイスを選択しましょう。
Xcodeで新規作成した直後のアプリケーションなので何も確認出来ることはないのですが、テストが成功しました。
録画されたビデオキャプチャを確認してみると、先程作成したアップロードが仮想デバイス上でちゃんと実行されていることが確認出来ます。
まとめ
Apple Developer Programの有料メンバーシップに未登録でもネイティブアプリを作成してDevice Farmでテストすることが確認出来ました。
CI/CDなどで組み込む際はXcodeの発行コマンドを使う必要があると思うので、その際には有料メンバーシップ登録が必要そうですが、まずDevice FarmのiOSを試してみたい、という方には良い方法ではないでしょうか。